# function calling
from typing import Any

from anthropic import BaseModel
from mcp.types import PromptArgument
from pydantic import AnyUrl


# 定义MCPFunction类,关于function calling执行的函数信息
class MCPFunction(BaseModel):
 name: str # 名称,缺少则为函数名称
 function_name: str # 函数名称
 server_name: str  #服务名称
 description: str | None = None # 描述
 function_type: str  # 函数类型:tool,resource,resource template,prompt
 input_schema: dict[str, Any] | None = None #输入参数，tool类型的函数才需要
 uri: str | AnyUrl | None = None #资源uri，resource类型的函数才需要
 arguments: list[PromptArgument] | None = None #参数，prompt类型的函数才需要
 execute: Any | None = None # 执行函数,初始化设置